package controller

import (
	"net/http"

	"example.dah.com/models"
	"github.com/gin-gonic/gin"
)

func IndexHandler(c *gin.Context) {
	c.String(http.StatusOK, "hello")
}

func Create(c *gin.Context) {
	var medal models.Medal
	c.BindJSON(&medal)
	err := models.CreateAMedal(&medal)
	if err != nil {
		c.JSON(http.StatusOK, gin.H{
			"code": 999,
			"msg": "创建失败",
			"error": err.Error(),
		})
	} else {
		c.JSON(http.StatusOK, gin.H{
			"code": 200,
			"msg": "创建成功",
			"data": medal,
		})
	}
}

func GetList(c *gin.Context) {
    medal, err := models.GetAllMedal()
	if err != nil {
		c.JSON(http.StatusOK, gin.H{
			"code": 999,
			"msg": "获取失败",
			"error": err.Error(),
		})
	} else {
		c.JSON(http.StatusOK, gin.H{
			"code": 200,
			"msg": "获取成功",
			"data": medal,
		})
	}
}

func Update(c *gin.Context) {
    id, ok := c.Params.Get("id")
	if !ok {
		c.JSON(http.StatusOK, gin.H{
			"code": 999,
			"msg": "更新失败",
			"error": "无效的id",
		})
		return
	}
	medal, err := models.GetAMedal(id)
	if err != nil {
		c.JSON(http.StatusOK, gin.H{
			"code": 999,
			"msg": "更新失败",
			"error": err.Error(),
		})
	} else {
		c.BindJSON(&medal)
		if err = models.UpdateMedal(medal); err!= nil {
			c.JSON(http.StatusOK, gin.H{
				"code": 999,
				"msg": "更新失败",
				"error": err.Error(),
			})
		} else {
			c.JSON(http.StatusOK, gin.H{
				"code": 200,
				"msg": "更新成功",
				"data": medal,
			})
		}
	}
}

func Del(c *gin.Context) {
	id, ok := c.Params.Get("id")
	if !ok {
		c.JSON(http.StatusOK, gin.H{
			"code": 999,
			"msg": "更新失败",
			"error": "无效的id",
		})
		return
	}
	err := models.DeleteAMedal(id)
	if err != nil {
		c.JSON(http.StatusOK, gin.H{
			"code": 999,
			"msg": "删除失败",
			"error": err.Error(),
		})
	} else {
		c.JSON(http.StatusOK, gin.H{
			"code": 200,
			"msg": "删除成功",
		})
	}
}